/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import conexion.Conexion;
import conexion.Sql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author usuario
 */
public class Egresos {
    int cons_comprobante;
    String cod_egreso;
    String descripcion;
    int valor_unitario;
    int rete_fuente;
    
    public ArrayList Comprobante = new ArrayList();
    public int total =0;
    
    public Egresos() {
    }

    public Egresos(int cons_comprobante, String cod_egreso, String descripcion,  int valor_unitario, int rete_fuente) {//BD SQL
        this.cons_comprobante = cons_comprobante;
        this.cod_egreso = cod_egreso;
        this.descripcion = descripcion;
        this.valor_unitario = valor_unitario;
        this.rete_fuente = rete_fuente;
    }

    public Egresos( String descripcion, int valor_unitario, int rete_fuente) {
        this.descripcion = descripcion;
        this.valor_unitario = valor_unitario;
        this.rete_fuente = rete_fuente;
    }

    public Egresos(String cod_egreso, String descripcion, int valor_unitario, int rete_fuente) {
        this.cod_egreso = cod_egreso;
        this.descripcion = descripcion;
        this.valor_unitario = valor_unitario;
        this.rete_fuente = rete_fuente;
    }  
    

    public String getCod() {
        return cod_egreso;
    }

    public String getDes() {
        return descripcion;
    }

    public int getValor() {
        return valor_unitario;
    }
    
     public int getRete() {
        return rete_fuente;
    }
    
    
    //Metodo para insertar un registro
    public boolean insertarEgreso(){
        boolean ok=false;
        
        String sql = "insert into egresos(cons_comprobante,cod_egreso, codigo, descripcion, valor_unitario, rete_fuente) "
                + "values ("+cons_comprobante+"," + cod_egreso+",'" +descripcion+"'," +valor_unitario+"," +rete_fuente+")"; 
        if (Sql.ejecuta(sql)==null){
            ok=true;
        }
        else{
            System.out.println("NO INSERTO " + Sql.ejecuta(sql));
        }
       
        
        return ok;
    }
    //Método para consultar un registro
    public ArrayList listaEgresos(){
        ArrayList lista = new ArrayList();
        Conexion conex = new Conexion();
        String sql = "Select * from egresos";
        try{
            conex.conectar();
            PreparedStatement st = conex.getConnection().prepareStatement(sql);
            ResultSet rs = st.executeQuery();
            //Recorre el objeto y adiciona los registros a la matriz
            while (rs.next()){
                lista.add(new Egresos(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getInt(4), rs.getInt(5)));
            }
            conex.desconectar();
        }catch(ClassNotFoundException ex){
            System.out.println(ex);
        } catch(SQLException ex){
            System.out.println(ex);
        }
        return lista;
    }
    //Método para realizar una busqueda.
    public ArrayList buscarEgresos(int cons_comprobante) throws ClassNotFoundException{
        ArrayList lista = new ArrayList();
        boolean ok=false;
        Conexion conex = new Conexion();
        String sql = "Select * from egresos where cons_comprobante=?";
        
        try{
            conex.conectar();
            PreparedStatement ps = conex.getConnection().prepareStatement(sql);
            ps.setInt(1, cons_comprobante);
            ResultSet rs = ps.executeQuery();
           while (rs.next()){
            lista.add(new Egresos(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getInt(4), rs.getInt(5)));
               
           }
           conex.desconectar();
           }
               
        catch(ClassNotFoundException ex){
            System.out.println(ex);}
        catch(SQLException ex){
            System.out.println(ex);
            
        }        
        return lista;
    }
    
    public int ultimoingreso(){
       int ultrec=0;
       String sql="SELECT * from egreso";
       Conexion conex = new Conexion();
      try{
            conex.conectar();
            PreparedStatement st = conex.getConnection().prepareStatement(sql);
            ResultSet rs = st.executeQuery();
            rs.last();
            ultrec = rs.getInt(1);
      }catch(ClassNotFoundException ex){
            System.out.println(ex);}
        catch(SQLException ex){
            System.out.println(ex);
            
        }        
       return ultrec;
   }
}
